Firefox 139 for developers
This article provides information about the changes in Firefox 139 that affect developers. Firefox 139 is the current Beta version of Firefox and ships on May 27, 2025.
Changes for web developers
Developer Tools
HTML
- The
hidden=until-found
HTML attribute and thebeforematch
event are now supported. The hidden until found state allows you to hide the contents of an element until it is found by user search (for example, using "Find in page") or by fragment navigation. Thebeforematch
event fires just before thehidden
attribute is removed (Firefox bug 1761043 and Firefox bug 1955379).
Removals
CSS
Removals
JavaScript
- The Temporal API is now supported, this aims to simplify working with dates and times in various scenarios, with built-in time zone and calendar representations (Firefox bug 1912511 and Firefox bug 1954138).
This includes:
- A duration (difference between two time points):
Temporal.Duration
- Points in time:
- As a unique instant in history:
- A timestamp:
Temporal.Instant
- A date-time with a time zone:
Temporal.ZonedDateTime
- A timestamp:
- Time-zone-unaware date/time ("Plain"):
- Date (year, month, day) + time (hour, minute, second, millisecond, nanosecond):
Temporal.PlainDateTime
- Date (year, month, day):
Temporal.PlainDate
- Year, month:
Temporal.PlainYearMonth
- Month, day:
Temporal.PlainMonthDay
- Year, month:
- Time (hour, minute, second, millisecond, nanosecond):
Temporal.PlainTime
- Date (year, month, day):
- Date (year, month, day) + time (hour, minute, second, millisecond, nanosecond):
- As a unique instant in history:
- Now (current time) as various class instances, or in a specific format:
Temporal.Now
- A duration (difference between two time points):
- Currently the following calendar types are disabled for the
withCalendar()
method forPlainDate
,PlainDateTime
, andZonedDateTime
objects:islamic
islamic-rgsa
islamic-umalqura
Removals
SVG
Removals
- The experimental
<discard>
element has been removed, along with its correspondingSVGDiscardElement
JavaScript interface. These aren't supported in other browsers and are expected to be removed from the specification. (Firefox bug 1958839).
HTTP
Removals
Security
Removals
APIs
DOM
- The
requestClose()
method of theHTMLDialogElement
interface is now supported. This allows developers to conditionally prevent a dialog from closing by providing acancel
event handler. (Firefox bug 1960556). - The
largeBlob
andcredProps
Web Authentication extensions are now supported, while theprf
extension is supported on all desktop platforms. These respectively provide support for large blob storage associated with a credential, additional information about a credential, and a mechanism for generating a random number associated with a credential and a particular input. (Firefox bug 1795020, Firefox bug 1844449, Firefox bug 1935280).
Media, WebRTC, and Web Audio
Removals
WebAssembly
Removals
WebDriver conformance (WebDriver BiDi, Marionette)
General
- The priority manager (on macOS, the background QoS manager) in Firefox, which manages IPC message prioritization between the parent and content processes, has been temporarily disabled for all supported Remote Protocols. This change resolves an issue where, under high system load, initial page loads in newly opened background tabs were not being scheduled, resulting in certain commands hanging (Firefox bug 1960734).
WebDriver BiDi
- Implemented the
emulation.setGeolocationOverride
command, allowing tests and automation tools to simulate geographic locations across specified browsing contexts or user contexts. This enables consumers to test location-aware features such as geofencing for local recommendations (Firefox bug 1954992).
Changes for add-on developers
- Localized extensions now cascade through locale subtags to find translations before reverting to the extension's default language. Previously, the extension used the extension default if a translation couldn't be found for a language with subtags. See Localized string selection in the Internationalization article for more details of the new behavior. (Firefox bug 1381580)
- Content scripts and styles are now guaranteed to execute in the order of registration (i.e., their order in the
content_scripts
manifest key array). Previously, the order was only guaranteed for scripts within the samejs
array. (Firefox bug 1792685) - The
tabGroups
API is now available. This API enables extensions to modify and rearrange tab groups. For more information, see WebExtensions Support for Tab Groups. (Firefox bug 1940631)
Removals
Other
Experimental web features
These features are shipping in Firefox 139 but are disabled by default. To experiment with them, search for the appropriate preference on the about:config
page and set it to true
. You can find more such features on the Experimental features page.
- Prioritized Task Scheduling API (Nightly release).
The Prioritized Task Scheduling API provides a standardized way to prioritize all tasks belonging to an application, whether they are defined in a website developer's code, or in third-party libraries and frameworks.
This adds support for the
scheduler.yield()
method and re-enables the whole API in the Nightly release. (Firefox bug 1958943, Firefox bug 1920115). - View Transition API (Nightly release). The View Transition API has been enabled for SPAs (single-page applications). It provides a mechanism for easily creating animated transitions between different website views. (Firefox bug 1950759).
- Support for escaping
<
and>
in attributes when serializing HTML:dom.security.html_serialization_escape_lt_gt
. Firefox now replaces the<
and>
characters with<
and>
, respectively, in attributes when serializing HTML. This helps prevent certain exploits where HTML is serialized and then injected back into the DOM. The affected methods and properties are:Element.innerHTML
,Element.outerHTML
,Element.getHTML()
,ShadowRoot.innerHTML
, andShadowRoot.getHTML()
. (Firefox bug 1941347). - Disable non-standard
beforescriptexecute
andafterscriptexecute
:dom.events.script_execute.enabled
. The events have been disabled on Nightly only, allowing browser testing prior to their removal. The affected events are:beforescriptexecute
andafterscriptexecute
on theDocument
interface, andafterscriptexecute
andbeforescriptexecute
on theElement
interface. (Firefox bug 1954685).
Older versions
- Firefox 138 for developers
- Firefox 137 for developers
- Firefox 136 for developers
- Firefox 135 for developers
- Firefox 134 for developers
- Firefox 133 for developers
- Firefox 132 for developers
- Firefox 131 for developers
- Firefox 130 for developers
- Firefox 129 for developers
- Firefox 128 for developers
- Firefox 127 for developers
- Firefox 126 for developers
- Firefox 125 for developers
- Firefox 124 for developers
- Firefox 123 for developers
- Firefox 122 for developers
- Firefox 121 for developers
- Firefox 120 for developers
- Firefox 119 for developers
- Firefox 118 for developers
- Firefox 117 for developers
- Firefox 116 for developers
- Firefox 115 for developers
- Firefox 114 for developers
- Firefox 113 for developers
- Firefox 112 for developers
- Firefox 111 for developers
- Firefox 110 for developers
- Firefox 109 for developers
- Firefox 108 for developers